package com.tgpay.iot.repository;

import com.tgpay.iot.entity.ChargingOrder;
import org.springframework.data.jpa.repository.JpaRepository;
import org.springframework.stereotype.Repository;

import java.util.List;
import java.util.Optional;

/**
 * 充电订单数据访问层
 */
@Repository
public interface ChargingOrderRepository extends JpaRepository<ChargingOrder, Long> {
    
    /**
     * 根据订单号查找订单
     */
    Optional<ChargingOrder> findByOrderNo(String orderNo);
    
    /**
     * 根据设备IMEI和端口号查找正在充电的订单
     */
    Optional<ChargingOrder> findByDeviceImeiAndPortIdAndStatus(String deviceImei, Integer portId, Integer status);
    
    /**
     * 根据设备IMEI查找所有订单
     */
    List<ChargingOrder> findByDeviceImeiOrderByCreateTimeDesc(String deviceImei);
    
    /**
     * 检查订单号是否存在
     */
    boolean existsByOrderNo(String orderNo);
    
    /**
     * 根据设备IMEI、端口号和状态查找订单（按创建时间倒序）
     */
    List<ChargingOrder> findByDeviceImeiAndPortIdAndStatusOrderByCreateTimeDesc(String deviceImei, Integer portId, Integer status);
    
    /**
     * 根据设备IMEI和端口号查找订单（按创建时间倒序）
     */
    List<ChargingOrder> findByDeviceImeiAndPortIdOrderByCreateTimeDesc(String deviceImei, Integer portId);
}